return Def.ActorFrame{
	LoadActor(THEME:GetPathG("bs","jukebox"))..{
		OnCommand=cmd(Center);
	};
	LoadFont("_title")..{
		OnCommand=cmd(x,SCREEN_LEFT+26;y,SCREEN_TOP+45;horizalign,left;settext,"JUKEBOX");
	};
	LoadActor("disk")..{
		OnCommand=cmd(x,SCREEN_LEFT+170;y,SCREEN_CENTER_Y-34;sleep,1;spin;linear,1;x,SCREEN_LEFT+300);
	};
	Def.Sprite{
		OnCommand=cmd(x,SCREEN_LEFT+170;y,SCREEN_CENTER_Y-35);
		SetCommand=function(self)
			local song = GAMESTATE:GetCurrentSong();
			if song then
				if song:HasJacket() then
					self:Load(song:GetJacketPath());
					self:setsize(256,256);
				elseif song:HasBackground() then
					self:LoadFromSongBackground(GAMESTATE:GetCurrentSong());
					self:setsize(256,256);
				else
					self:Load(THEME:GetPathG("", "Common fallback jacket"));
					self:setsize(256,256);
				end
			end
		end;
	};
	LoadFont("_title")..{
		OnCommand=cmd(x,SCREEN_LEFT+45;y,SCREEN_CENTER_Y+120;horizalign,left;maxwidth,SCREEN_WIDTH*.8);
		SetCommand=function(self)
			local song = GAMESTATE:GetCurrentSong();
			if song then
				self:settext(song:GetDisplayFullTitle());
			end
		end;
	};
	LoadFont("Common normal")..{
		OnCommand=cmd(x,SCREEN_LEFT+45;y,SCREEN_CENTER_Y+160;horizalign,left);
		SetCommand=function(self)
			local song = GAMESTATE:GetCurrentSong();
			if song then
				self:settext(song:GetDisplayArtist());
			end
		end;
	};
	Def.ActorFrame{
		InitCommand=cmd(playcommand,"Update");
		LoadFont("Common normal")..{
			Text="00:00";
			OnCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+190);
			UpdateCommand=function(self)
				local song = GAMESTATE:GetCurrentSong();
				if song then
					self:settext(SecondsToMMSS(GAMESTATE:GetCurMusicSeconds()).." / "..SecondsToMMSS(song:MusicLengthSeconds()));
					self:sleep(1);
					self:queuecommand("Update");
				end
			end;
		};
	};
	Def.Quad{
		OnCommand=cmd(diffusecolor,color("#000000");zoomto,SCREEN_WIDTH*.8,5;CenterX;y,SCREEN_BOTTOM-25;fadeleft,.15;faderight,.15);
	};
	Def.SongMeterDisplay{
		InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-25;SetStreamWidth,SCREEN_WIDTH*.8);
		Stream=LoadActor("trackbg")..{InitCommand=cmd(diffusealpha,0)};
		Tip=LoadActor("tip")..{
			OnCommand=cmd(zoom,0;sleep,1.8;zoom,1;diffuseshift;effectcolor1,color("1,1,1,1");effectcolor2,color("1,1,1,.5");effectclock,"beat";effectperiod,4;);
		};
	};
	CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
}